package com.example.demo.adapter;

import android.content.Intent;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.demo.JokeOne;
import com.example.demo.MainActivity;
import com.example.demo.R;
import com.example.demo.TalkActivity;
import com.example.demo.model.Joke;


import java.util.List;

public class OneMyAdapter extends RecyclerView.Adapter<JokeViewHolder> {


    private List<Joke> mList;

    // 这个构造函数的作用是要把要展示的数据传入进来
    public OneMyAdapter(List<Joke> myList) {
        this.mList = myList;
    }

    @NonNull
    @Override
//   onCreateViewHolder是用来创建ViewHol实例的
    public JokeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

//        将fruit——item布局加载进来 加载子项布局
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.joke_one, parent, false);
//        创建一个 ViewHolder实例  并把加载的布局传入内部类的构造函数中
        JokeViewHolder holder =  new JokeViewHolder(view);
        return holder;
    }


    @Override
//    onBindViewHolder方法用于对RecyclerView子项的数据进行赋值的
    public void onBindViewHolder(@NonNull JokeViewHolder holder, int position) {
//        通过position参数得到Fruit实例
        Joke joke = mList.get(position);
        holder.joketitle.setText(joke.getTitle());
        holder.jokecontent.setText(joke.getContent());
    }

    @Override
//    getItemCount方法它告诉RecyclerView一共有多少子项 所以直接返回长度
    public int getItemCount() {

        return mList.size();
    }
}


//定义一个内部类    继承 RecylerView.viewHolder
class JokeViewHolder extends RecyclerView.ViewHolder {

    View jokeitem;



    TextView joketitle;

    TextView jokecontent;

    //构造函数中要要传入一个View参数  这个是RecyclerView子项的最外层布局  也就是说传入的是一个布局
    public JokeViewHolder(@NonNull View itemView) {
        super(itemView);
        jokeitem = itemView;
        //通过findViewById（）找到控件的实例
        joketitle = itemView.findViewById(R.id.one_joke_title);
        jokecontent = itemView.findViewById(R.id.one_joke_content);


    }
}
